

#include <iostream>
using namespace std;

//#include <string>
//int main()
//{
//	string str("hello");
//	cout << str << " " << &str << endl;
//
//	/*getline(cin, str, '0');
//	cout << str << " " << &str << endl;
//
//	getline(cin, str);
//	cout << str << " " << &str << endl;*/
//
//	string s("ab");
//	cout << (str >= s) << endl;
//	cout << (str > s) << endl;
//	cout << (str < s) << endl;
//	cout << (str <= s) << endl;
//	cout << (str == s) << endl;
//	cout << (str != s) << endl;
//	cout << sizeof(s) << endl;
//
//
//	return 0;
//}

//static inline void _swap(char* s1, char* s2)
//{
//    char tmp = *s1;
//    *s1 = *s2;
//    *s2 = tmp;
//}
//
//char* reverseOnlyLetters(char* s) {
//    int l = 0, r = strlen(s) - 1;
//
//    while (l < r)
//    {
//        while (!isalpha(s[l]) && l < r)
//        {
//            ++l;
//        }
//
//        while (!isalpha(s[r]) && l < r)
//        {
//            --r;
//        }
//
//        if (l >= r)
//        {
//            break;
//        }
//
//        _swap(s + l, s + r);
//
//        ++l;
//        --r;
//    }
//
//    return s;
//}


//class Sln
//{
//public:
//    string reverseOnlyLetters(string s)
//    {
//        int l = 0, r = s.size() - 1;
//
//        while (l < r)
//        {
//            while (l < r && !isalpha(s[l]))
//            {
//                ++l;
//            }
//
//            while (l < r && !isalpha(s[r]))
//            {
//                --r;
//            }
//
//            if (l >= r)
//            {
//                break;
//            }
//
//            swap(s[l], s[r]);
//
//            ++l;
//            --r;
//        }
//
//        return s;
//    }
//};

//int firstUniqChar(char* s) {
//    int sz = strlen(s);
//    int max = s[0], min = s[0];
//
//    for (int i = 1; i < sz; ++i)
//    {
//        if (max < s[i])
//        {
//            max = s[i];
//        }
//
//        if (min > s[i])
//        {
//            min = s[i];
//        }
//    }
//
//    int cnt[max - min + 1];
//    memset(cnt, 0, sizeof(int) * (max - min + 1));
//    for (int i = 0; i < sz; ++i)
//    {
//        cnt[s[i] - min]++;
//    }
//
//    for (int i = 0; i < sz; ++i)
//    {
//        if (1 == cnt[s[i] - min])
//            return i;
//    }
//
//    return -1;
//}

//class Sln
//{
//public:
//    int firstUniqChar(string s)
//    {
//        int max = s[0], min = s[0];
//
//        for (int i = 1; i < s.size(); ++i)
//        {
//            if (s[i] > max)
//            {
//                max = s[i];
//            }
//
//            if (s[i] < min)
//            {
//                min = s[i];
//            }
//        }
//
//        int cnt[max - min + 1];
//        memset(cnt, 0, sizeof(int) * (max - min + 1));
//        for (int i = 0; i < s.size(); ++i)
//        {
//            cnt[s[i] - min]++;
//        }
//
//        for (int i = 0; i < s.size(); ++i)
//        {
//            if (1 == cnt[s[i] - min])
//                return i;
//        }
//
//        return -1;
//    }
//};

//class Sln
//{
//public:
//    int firstUniqChar(string s)
//    {
//        int cnt[129] = { 0 };
//
//        for (int i = 0; i < s.size(); ++i)
//        {
//            cnt[s[i]]++;
//        }
//
//        for (int i = 0; i < s.size(); ++i)
//        {
//            if (1 == cnt[s[i]])
//                return i;
//        }
//
//        return -1;
//    }
//};

//int main()
//{
//    char a[5000] = { 0 };
//    fgets(a, 5000, stdin);
//
//    int sz = strlen(a);
//    int cnt = 0;
//    for (int i = sz - 1; a[i] != ' ' && i > -1; --i)
//    {
//        ++cnt;
//    }
//    printf("%d\n", --cnt);
//
//    return 0;
//}

#include <iostream>
using namespace std;

int main()
{
    string s;
    s.reserve(5000);

    getline(cin, s);
    size_t pos = s.find_last_of(' ');

    cout << s.size() - (pos + 1) << endl;

    return 0;
}
